﻿using System;
using Dados.Interfaces;
using Dados.ClassesSQLServer;
using Dados.ValueObjects;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace Negocios
{
    [DataObject]
   public class DestinoBOMetodos
    {
       private IDestino IDestinoDados;

       public DestinoBOMetodos (){

           IDestinoDados = new DestinoSQLServer();
       }

        [DataObjectMethodAttribute (DataObjectMethodType.Insert,true)]
       public bool inserir ( DestinoBO dbo){
           DestinoVO dVO = new DestinoVO ();
           dVO.Id = dbo.Id;
           dVO.Nome = dbo.Nome;
           dVO.Aeroporto = dbo.Aeroporto;
           dVO.Lingua = dbo.Lingua;
           dVO.Pais = dbo.Pais;
           dVO.Moeda = dbo.Moeda;
           dVO.Visto = dbo.Visto;

           return (IDestinoDados.Insere (dVO) ==1);
        }

        [DataObjectMethodAttribute(DataObjectMethodType.Update, true)]
           public bool atualizar (DestinoBO dbo){
               DestinoVO dVO = new DestinoVO ();
                dVO.Id = dbo.Id;
                dVO.Nome = dbo.Nome;
                dVO.Aeroporto = dbo.Aeroporto;
                dVO.Lingua = dbo.Lingua;
                dVO.Pais = dbo.Pais;
                dVO.Moeda = dbo.Moeda;
                dVO.Visto = dbo.Visto;
               return IDestinoDados.Atualiza(dVO) ==1;

           }
        [DataObjectMethodAttribute(DataObjectMethodType.Delete, true)]
               public bool remover (int id) {
                   if (Consultar (id) ==null)
                       return false;
                   else
                       return IDestinoDados.Remove (id) ==1;
               }

        [DataObjectMethodAttribute(DataObjectMethodType.Select, false)]
                public DestinoBO Consultar (int id)
                {
                    DestinoVO dVO = IDestinoDados.consulta(id);
                    DestinoBO dBO = new DestinoBO();
                    dBO.Nome = dVO.Nome;
                    dBO.Aeroporto = dVO.Aeroporto;
                    dBO.Lingua = dVO.Lingua;
                    dBO.Pais = dVO.Pais;
                    dBO.Moeda = dVO.Moeda;
                    dBO.Visto = dVO.Visto;

                    return dBO;
                }

        [DataObjectMethodAttribute(DataObjectMethodType.Select, true)]
       public  List<DestinoBO> consultaTodos()
        {
            List<DestinoBO> IdestinoBO = new List<DestinoBO>();
            List<DestinoVO> IdestinoVO =  (new DestinoSQLServer ()).ConsultaTodos();
            foreach (DestinoVO dVO in IdestinoVO)
            {
                DestinoBO dBO = new DestinoBO();
                dBO.Nome = dVO.Nome;
                dBO.Id = dVO.Id;
                dBO.Aeroporto = dVO.Aeroporto;
                dBO.Lingua = dVO.Lingua;
                dBO.Pais = dVO.Pais;
                dBO.Moeda = dVO.Moeda;
                dBO.Visto = dVO.Visto;

                IdestinoBO.Add(dBO);
            }
            return IdestinoBO;
        }

    }
}
         
         
         
  
